package com.iot.ammeter.service.web.campus;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iot.ammeter.dto.web.campus.BuildingDTO;
import com.iot.ammeter.entity.web.campus.Building;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iot.ammeter.query.web.campus.BuildingQuery;

import java.util.List;

/**
 * <p>
 * 楼栋 服务类
 * </p>
 *
 * @author basil
 * @since 2021-09-25
 */
public interface BuildingService extends IService<Building> {

    /**
     * 添加楼栋信息
     *
     * @param buildingDTO 楼栋信息
     * @return 添加成功或者添加失败
     */
    String addBuilding(BuildingDTO buildingDTO);

    /**
     * 编辑楼栋信息
     *
     * @param buildingId  楼栋id
     * @param buildingDTO 楼栋信息
     * @return 编辑成功或者编辑失败提示
     */
    String editBuilding(String buildingId, BuildingDTO buildingDTO);

    /**
     * 获取楼栋信息列表
     *
     * @param page          请求页码
     * @param pageSize      每页数量
     * @param buildingQuery 楼栋查询条件
     * @return 返回楼栋信息列表
     */
    IPage<BuildingDTO> getBuildingList(int page, int pageSize, BuildingQuery buildingQuery);

    /**
     * 批量添加楼栋信息
     *
     * @param buildingDTO 楼栋信息
     * @return 批量添加成功或者失败
     */
    String batchAddBuilding(BuildingDTO buildingDTO);

    /**
     * 删除楼栋（逻辑删除）
     *
     * @param buildingIds 楼栋id集合
     * @return 删除成功或者失败
     */
    String batchDelBuilding(String[] buildingIds);

    /**
     * 导出楼栋列表
     *
     * @param buildingQuery 查询条件
     * @return 楼栋列表集合
     */
    @Deprecated
    List<BuildingDTO> exportBuildingList(BuildingQuery buildingQuery);
}
